package saei.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import saei.bean.Asignacion;
import saei.bean.Cpu;
import saei.bean.vo.ItemPlanRotacionVO;
import saei.service.ServiciosAsignacion;
import saei.service.ServiciosEquipo;
import saei.utils.GeneradorPdf;
import saei.utils.SessionUtils;

@SuppressWarnings("serial")
public class InformeEOServlet extends ServletBase {       
    public InformeEOServlet() {
        super("/InformeEquipamientoObsoleto.jsp","/InformeEquipamientoObsoleto.jsp");
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		mensajeError = null;
		mensajeExito = null;
		request.getSession().removeAttribute("itemsEO");
		
		try {
			List<Cpu> lista = ServiciosEquipo.obtenerEquiposObsoletos();
			if (lista.isEmpty()) {
				mensajeExito = "No existen equipos obsoletos.";
			} else {
				ArrayList<ItemPlanRotacionVO> listaVO = new ArrayList<ItemPlanRotacionVO>();
				
				for (Cpu cpu : lista) {
					Asignacion asignacion = ServiciosAsignacion.buscarAsignacionActiva(cpu.getNumeroSerie());
					
					ItemPlanRotacionVO ipr = new ItemPlanRotacionVO();
					ipr.setMarca(cpu.getMarca().getDescripcion());
					ipr.setModelo(cpu.getModelo().getDescripcion());
					ipr.setFechaAlta(cpu.getRemito().getFechaRecepcion());
					ipr.setNumeroSerie(cpu.getNumeroSerie());
					ipr.setUsuario(asignacion.getUsuario().getNombre());
					ipr.setRepresentacion(asignacion.getRepresentacion().getNombre());
					
					listaVO.add(ipr);
				}
				
				mensajeExito = null;
				request.getSession().setAttribute("itemsEO",listaVO);
			}			
		} catch (Exception e) {
			mensajeError = e.getMessage();
		}
		
		this.redirect(request, response);
	}
	
	@SuppressWarnings("unchecked")
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ArrayList<ItemPlanRotacionVO> listaVO = (ArrayList<ItemPlanRotacionVO>) request.getSession().getAttribute("itemsEO");
		GeneradorPdf.generarInformeEquipamientoObsoleto(response, 
				SessionUtils.getLogedUser(request.getSession()).getVO(), listaVO);
	}
}
